package com.xueyi.aixihu.service;

import com.xueyi.aixihu.entity.vo.*;
import com.xueyi.aixihu.exception.SzException;
import com.xueyi.aixihu.reqeust.AgreePassNewsAuditReq;
import com.xueyi.aixihu.reqeust.AuditNewsReq;
import com.xueyi.aixihu.reqeust.FindWaitAuditNewsListReq;
import com.xueyi.aixihu.reqeust.OpenNewsReq;

import java.util.List;

/**
 * @author hxs
 * @createDate 2023/6/28 10:05
 * @description 文章审核接口
 */
public interface NewAuditService {
    /**
     * 查询待审核列表
     *
     * @return 文章列表
     */
    DataList<WaitAuditNewsVo> findWaitAuditNewsList(FindWaitAuditNewsListReq findWaitAuditNewsListReq) throws SzException;

    /**
     * 审核镇级党务公开
     *
     * @param auditNewsReq
     * @return
     */
    Boolean auditNewsByZJDW(AuditNewsReq auditNewsReq) throws SzException;


    /**
     * 是否公开镇级党务公开
     *
     * @param openNewsReq
     * @return
     * @throws SzException
     */
    Boolean openNewsByZJDW(OpenNewsReq openNewsReq) throws SzException;

    /**
     * 是否公开镇级政务公开
     *
     * @param openNewsReq
     * @return
     * @throws SzException
     */
    Boolean openNewsByZJZW(OpenNewsReq openNewsReq) throws SzException;

    /**
     * 审核镇级政务公开
     *
     * @param auditNewsReq
     * @return
     */
    Boolean auditNewsByZJZW(AuditNewsReq auditNewsReq) throws SzException;

    /**
     * 通过审核文章
     *
     * @param agreePassNewsAuditReq 参数
     */
    void agreePassNewsAudit(AgreePassNewsAuditReq agreePassNewsAuditReq) throws SzException;

    /**
     * 查询待审核文章数据
     *
     * @return 待审核文章数据
     */
    FindWaitAuditNewsSizeVo findWaitAuditNewsSize(Integer auditType) throws SzException;

    /**
     * 查询文章审核日志
     *
     * @param id 文章id
     * @return 日志列表
     */
    List<AxhAuditFinanceLogVo> findNewsAuditLog(Integer id, Boolean aTrue) throws SzException;

    /**
     * 通过id查询待审核文章对象
     *
     * @param id 文章id
     * @return 待审核文章对象
     */
    WaitAuditNewsVo findNewsVoById(Integer id) throws SzException;

    /**
     * 查询分类列表
     *
     * @return 分类列表
     */
    List<BaseSelectVo> findClassifyList();
}
